package com.ehe.common.core.mybatis.pagination;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;

public class MyPageImpl<T> extends Page<T> {

    public org.springframework.data.domain.Page<T> convertPage() {
        return new PageImpl<>(getRecords(), PageRequest.of((int) getCurrent() - 1, (int) getSize()), getTotal());
    }

    public static <T> MyPageImpl<T> of(Pageable pageable) {
        MyPageImpl<T> myPage = new MyPageImpl<>();
        // 前端传page参数，0为第一页
        // 前端传pageNumber参数，1为第一页
        // 这边pageable.getPageNumber() 第一页为0
        // MyPageImpl.current 1为第一页
        myPage.setCurrent(pageable.getPageNumber() + 1L);
        myPage.setSize(pageable.getPageSize());
        return myPage;
    }

}
